機械学習 2017 4 30
多くの人は、「機械学習」というと、
英語の単語帳をAからZまで、
機械的に学習することだと勘違いするかもしれません。
しかし、「機械学習」とは、
コンピューターのプログラミングにかかわることであり、
最近、注目を集めている「AI」や「ビッグデータ」にも大いに関係することです。
書名 機械学習&ディープラーニング
著者 機械学習研究会 技術評論社
おそらく、多くの人は、コンピューターのプログラムを書いていると、
「プログラムは、コンピューターが書いてほしい」と思うようになります。
なぜかというと、人間というものは、
緻密ではなく、すぐに飽きてしまい、ミスをするからです。
その点、コンピューターは、単純作業をしても飽きることなく、
ミスをすることもなく確実に仕事ができますので、
コンピューターには、プログラミングの仕事が向いています。
たとえば、簡単なゲームを作ってみましょう。
サイコロの目によって、いろいろな絵が表示されるプログラムです。
1の時は、リンゴの絵、
2の時は、玉ねぎの絵、
3の時は、鍋の絵、
4の時は、鉛筆の絵、
6の時は、おもちゃの絵が表示されるようにします。
これで完成と思ったら、
「忘れた。5の時を書くのを忘れた」と思い、
「5の時は、傘の絵」を追加します。
今度こそ完成と思ったら、
コンピューター特有の問題がありました。
サイコロの目が、1から6以外の場合に、
どうするかを書いておかないと、
コンピューターが困ってしまいます。
たとえば、サイコロが机の下に落ちてしまい、
どう探しても、発見できない。
この場合は、サイコロの目は、「空白」にしよう。
次に、人間が「6」と入力するつもりが、
うっかり「7」と入力してしまった。
そういうわけで、「1」から「6」以外の数字が入ったら、
あるいは、文字が入ったら、
「エラー表示」をするようにプログラムに書いておく必要があります。
さて、もう少し複雑なプログラムを書きましょう。
最近、小遣いの残高が、すぐに減ってしまう。
飲み物代が多いかもしれない。
そこで、コンピューターに毎月の飲み物代を集計してもらおうとします。
この場合は、コンピューターは、何が飲み物かを知らないので、
最初に、「飲み物とは何か」を定義しておく必要があります。
(飲み物)
コーヒー。
お茶。
水。
缶コーヒー。
コカコーラ。
ペプシコーラ。
これで、毎日、「コーヒー 350円」、
「缶コーヒー 120円」などと入力していけば、
毎月、いくら飲み物代がかかっているが、わかることになります。
ところが、ある日、いつもと気分を変えたいので、
「ドクターペッパー」を買いました。
そこで、「ドクターペッパー 120円」と入力しました。
しかし、「ドクターペッパー」は、飲み物の定義にはないので、
コンピューターは、困ってしまいます。
人間としては、コカコーラもペプシコーラもドクターペッパーも似たようなもので、
「そこは、融通を利かして、飲み物と判断してほしい」と思ってしまいます。
(私は、複雑な香りがするので、ドクターペッパーが好きです)
人間は、ドクターペッパーを飲んだことがない人でも、
それが飲み物売り場においてあったと学習していますので、
「飲み物である」と判断するでしょう。
そもそも、缶の形状を見て、「これは飲み物である」と判断します。
人間は、子供の時から、見たもの、聞いたもの、食べたものなど、
大脳に大量のデータを詰め込んで、そのデータを分類をしています。
そして、大量のデータを学習した結果、
目の前に「未知のもの」が出てきても、見当をつけます。
こういうことが人間にできるならば、コンピューターにもできるはずです。
特に、最近のコンピューターは、CPUの処理速度が驚異的に向上して、
メモリー空間も大きく拡大して、
さらに記憶装置であるハードディスクも記憶容量が大きい。
ここまでくれば、処理速度もメモリー容量も記憶容量も、
人間の大脳を上回るでしょう。
やがて、コンピューターがプログラムを書き、
大量のデータを収集して、蓄積・分類・分析して、
そのデータを学習して、判断を下すという時代になるでしょう。